#ifndef SCHEDULEWIDGET_H
#define SCHEDULEWIDGET_H

#include <QWidget>
#include <QDate>
class QTableWidget;
class QComboBox;
class QLabel;
class QPushButton;
class QTableWidgetItem;

namespace Ui {
class ScheduleWidget;
}

class ScheduleWidget : public QWidget
{
    Q_OBJECT

public:
    explicit ScheduleWidget(QWidget *parent = nullptr);
    ~ScheduleWidget();

private:
    void setupUI();
    void setupTable();
    void loadSchedule();
    void addCourse();
    void handleItemChanged(QTableWidgetItem* item);
    void deleteCourse();
    void showPreviousWeek();
    void showNextWeek();

    QPair<QDate, QDate> getWeekRange(int year, int week);
    // UI 控件声明
    QTableWidget*    tableWidget;       // 课程表主体
    QComboBox*      yearComboBox;      // 年份选择
    QComboBox*      weekComboBox;      // 周次选择
    QLabel*         dateRangeLabel;    // 显示当前周日期范围
    QPushButton*    addButton;         // 添加课程按钮
    QPushButton*    deleteButton;      // 删除课程按钮
    QPushButton*    prevWeekBtn;       // 上一周按钮
    QPushButton*    nextWeekBtn;       // 下一周按钮
    // 数据存储结构
    QMap<QPair<int, int>, QVector<QVector<QString>>> scheduleData; // Key: (年份,周次) Value: 课程表数据
    QStringList times={
        "上午1", "上午2",
        "下午1", "下午2",
        "晚上1", "晚上2"
    };//上午1， 上午2...
    Ui::ScheduleWidget *ui;
};


#endif // SCHEDULEWIDGET_H
